perm filename WRITER.SAI[4,KMC] blob
sn#180026 filedate 1975-10-04 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00004 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 BEGIN
C00003 00003 PROC WRITE
C00006 00004 BREAK_LINE
C00007 ENDMK
C⊗;
BEGIN
REQUIRE "IODEFS.SAI[SEC,RCP]" SOURCE_FILE;
STRING PERIOD;
α 1 = Kid's name
2 = Parent's name
3 = Street address
4 = Telephone number
5 = Home room teacher
6 = Grade
7-B = Problems or good areas
C = Specification of OTHER;
PROC WRITE;
BEGIN "Write"
BOOLEAN GRADED;
STRING KIDLIST;
INTEGER PICK, AT;
GRADED ← GET_A_STRING("Should I read their grades [Y,N]") = "Y";
KIDLIST ← GET_A_STRING("Which kids [highest grade, numbers]");
FILIN("PERIOD." & PERIOD, INCH1);
IF GRADED THEN FILIN("GRADES." & PERIOD, INCH2);
FILOUT("BLANKS." & PERIOD, OUCH1);
AT ← 1;
PICK ← IF KIDLIST ≥ "A" THEN 0 ELSE INTSCAN(KIDLIST, BRK);
DO BEGIN "Kid"
STRING KID, PARENT, ADDRESS, PHONE, TEACHER, GRADE, TEMP;
KID ← IN_LINE;
TEMP ← SCAN(KID, 8, BRK);
KID ← KID[2 TO ∞] ∂ TEMP;
PARENT ← IN_LINE;
ADDRESS ← IN_LINE;
TEACHER ← IN_LINE;
PHONE ← SCAN(TEACHER, 3, BRK);
TEMP ← IN_LINE;
IF GRADED THEN
BEGIN
GRADE ← INPUT(INCH2, 1);
GRADE ← GRADE[28 FOR 2];
END
ELSE IF KIDLIST ≥ "A" THEN GRADE ← GET_A_STRING("Grade for" ∂ KID)
ELSE GRADE ← NULL;
IF (KIDLIST ≥ "A") AND (GRADE ≥ KIDLIST) OR (PICK = AT) THEN
BEGIN "Process"
STRING ARRAY UGH[1:5];
STRING PROBLEMS, PROBS;
OUT_LINE(KID);
OUT_LINE(PARENT);
OUT_LINE(ADDRESS);
OUT_LINE(PHONE);
OUT_LINE(TEACHER);
IF GRADE THEN OUTSTR(KID ∂ "got a" ∂ GRADE ↓)
ELSE GRADE ← GET_A_STRING("Grade for" ∂ KID);
OUT_LINE(GRADE);
PROBS ← GET_A_STRING("Areas [Eff Att HW Test Other]");
FOR I ← 1 TIL 5 DO UGH[I] ← "___";
WHILE (TEMP ← SCAN(PROBS, 2, BRK)) DO
UGH[ IF EQU(TEMP, "E" ) THEN 1 ELSE
IF EQU(TEMP, "A" ) THEN 2 ELSE
IF EQU(TEMP, "H" ) THEN 3 ELSE
IF EQU(TEMP, "T" ) THEN 4 ELSE 5] ← "XXX";
IF UGH[5] = "X" THEN PROBLEMS ← GET_A_STRING("Other =")
ELSE PROBLEMS ← "____________________________";
FOR I ← 1 TIL 5 DO OUT_LINE(UGH[I]);
OUT_LINE(PROBLEMS);
OUT_LINE(NULL);
IF PICK > 0 THEN PICK ← INTSCAN(KIDLIST, BRK);
END "Process";
AT ← AT + 1;
END "Kid"
UNTIL EOF;
RELEASE(INCH1);
IF GRADED THEN RELEASE(INCH2);
RELEASE(OUCH1);
END "Write";
BREAK_LINE;
BREAK_BLANK;
BREAK_TAB;
BREAK_COMMA;
WHILE (PERIOD ← GET_A_STRING("Which period # [<CR> for none]")) DO WRITE;
END